//
// Created by liushuai on 2021/3/9.
//

#ifndef LEETCODE_GRAPHNODE_H
#define LEETCODE_GRAPHNODE_H

#include <string>
#include <queue>
#include <map>
#include <vector>

using namespace std;

class GraphNode {
private:
    string name;
    priority_queue<int> edge;
    map<int, GraphNode *> edge_to_node;
    bool isVisit = false;
public:
    GraphNode(string n, priority_queue<int> e, map<int, GraphNode *> etn);
    GraphNode(string n, vector<int> e, map<int, GraphNode *> etn);
    GraphNode(string n);
    GraphNode(string n,vector<int>e);
    GraphNode *getMinNode();
    string getName();
    void setEdge(vector<int>& e);
    void setEdgeToNode(map<int,GraphNode*>& e);
    void setVisited();
    bool getVisit();

};


#endif //LEETCODE_GRAPHNODE_H
